#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<pthread.h>
#include<unistd.h>
void * thread_main(void *arg);

int main(int argc,char *argv[]){
	pthread_t t_id;
	int thread_param = 5;
	void * thr_ret;

	if(pthread_create(&t_id,NULL,thread_main,(void *)&thread_param)!=0){		
		puts("pthread_create() error");
		return -1;
	}
	if(pthread_join(t_id,&thr_ret)!=0){
		puts("pthread_join() error");
		return -1;
	}

	printf("Thread return message :%s\n",(char*)thr_ret);
	free(thr_ret);
	return 0;
}

void * thread_main(void * arg){
	int i;
	int cnt = *((int *)arg);
	char * msg = (char *)malloc(sizeof(char)*50);
	strcpy(msg,"Hello,i am thread\n");

	for(i=0;i<cnt;i++){
		sleep(1);
		puts("running thread");
	}
	return (void *)msg;
}

/*

使用pthread_join 让线程加入到主线程之前，主线程会被阻塞，直到新线程结束。
但是新线程之间是会来回切换的。
*/

